#pragma once

#include "SoundCue.h"
#include "SoundEffect.h"
#include "MediaReader.h"
#include "Audio.h"

ref class AudioEngine
{
private:
	SoundEffect^ LoadSound(Platform::String^ filename);

internal:
	AudioEngine(void);

	void Initialize();
	void PlaySound(SoundCue cue, float volume, bool loop);
	void StopSound(SoundCue cue, bool waitUntilEnd);
	void SetVolume(SoundCue cue, float volume);
	void StopAllSounds();
	bool IsPlaying(SoundCue cue);
	void PlayBounce(float volume);

	std::map<SoundCue, SoundEffect^>	m_soundMap;

	Audio^			m_audio;
	MediaReader^	m_mediaReader;
};

